EVI2 is a simplified form of the Enhanced Vegetation Index that uses only red and NIR bands.
It is designed for areas or sensors where the blue band is noisy or not available, while still
improving sensitivity over NDVI in dense vegetation.
Vegetation densityTwo-band index (NIR & Red)Less sensitive to atmospheric effectsGood for high biomass regions
1. What is EVI2?
The Two-band Enhanced Vegetation Index (EVI2) is a modification of the original EVI that
removes the blue band, making it easier to apply to sensors that do not have a reliable blue band
(or where atmospheric correction is less stable). It maintains the enhanced sensitivity to canopy structure
and high biomass compared to NDVI.
Mathematical Definition
EVI2 = 2.5 × (NIR − RED) / (NIR + 2.4 × RED + 1.0)
Dimensionless (–1 to +1)
Where:
NIR = Near Infrared reflectance
RED = Red reflectance
2.5 = gain factor
2.4 = red weighting coefficient
1.0 = canopy background / bias term
Typical Interpretation
EVI2 Range
Interpretation
< 0.0
Water, snow, clouds, or non-vegetated bright surfaces
0.0 – 0.2
Bare soil, rocks, urban areas, or very sparse vegetation
Using sensors without blue band or with unstable blue reflectance
2. Data & Bands for EVI2
Common Sensors & Bands
Sentinel-2 (ESA) – 10 m
Red: B4 (~665 nm)
NIR: B8 (~842 nm)
Landsat 8/9 OLI – 30 m
Red: B4
NIR: B5
Good Practice
Use atmospherically corrected surface reflectance products.
Filter out cloudy scenes using cloud masks or cloud percentage thresholds.
Clip to your area of interest (AOI) to reduce processing time and export size.
Combine with NDVI/EVI to better understand vegetation structure and stress.
Typical Use Cases
Operational crop monitoring (large scale)
Time-series analysis in agricultural dashboards
Regional vegetation condition mapping
3. Google Earth Engine Code – EVI2 for Any AOI
Steps: open code.earthengine.google.com → New Script → paste the code →
draw your AOI as geometry on the map → click Run.
Then export EVI2 as GeoTIFF to Google Drive.
// EVI2 for any Area of Interest (AOI) using Sentinel-2 SR
// -------------------------------------------------------
// 1) Go to: https://code.earthengine.google.com
// 2) Click "New Script" and paste this code.
// 3) On the map: draw your AOI (Polygon/Rectangle).
// It will appear as a variable named 'geometry' in the left panel.
// 4) Click "Run" to display EVI2.
// 5) In the Tasks tab, click "Run" to export EVI2 to Google Drive.
// -------------------------------------------------------
// 1. Define Area of Interest (AOI)
// -------------------------------------------------------
var roi = geometry; // Make sure a 'geometry' object exists in the left panel
// Center the map on the AOI
Map.centerObject(roi, 11);
// -------------------------------------------------------
// 2. Define time range
// -------------------------------------------------------
var startDate = '2023-01-01';
var endDate = '2023-12-31';
// -------------------------------------------------------
// 3. Load Sentinel-2 Surface Reflectance
// -------------------------------------------------------
var s2_sr = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(roi)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));
// Build a median composite and clip to AOI
var s2_median = s2_sr.median().clip(roi);
// -------------------------------------------------------
// 4. Compute EVI2
// EVI2 = 2.5 * (NIR - RED) / (NIR + 2.4*RED + 1.0)
// -------------------------------------------------------
var evi2 = s2_median.expression(
'2.5 * ((NIR - RED) / (NIR + 2.4 * RED + 1.0))',
{
'NIR': s2_median.select('B8'), // NIR
'RED': s2_median.select('B4') // Red
}
).rename('EVI2');
// -------------------------------------------------------
// 5. Visualization on the map
// -------------------------------------------------------
var evi2Vis = {
min: -1,
max: 1,
palette: [
'#440154', // low
'#3b528b',
'#21908c',
'#5dc963',
'#fde725' // high
]
};
// Add EVI2 layer to the map
Map.addLayer(evi2, evi2Vis, 'EVI2 (Sentinel-2)', true);
// Optionally, also show a true color composite for context
var s2_rgb = s2_sr
.select(['B4','B3','B2']) // RGB
.median()
.clip(roi);
Map.addLayer(s2_rgb, {min:0, max:3000}, 'True Color (RGB)', false);
// -------------------------------------------------------
// 6. Export EVI2 as GeoTIFF to Google Drive
// -------------------------------------------------------
Export.image.toDrive({
image: evi2,
description: 'EVI2_Export',
fileNamePrefix: 'EVI2_Export',
region: roi,
scale: 10, // Sentinel-2 native resolution (10 m)
crs: 'EPSG:4326',
maxPixels: 1e13
});